const db = require('../db/index')

const bcrypt = require('bcryptjs')

exports.userinfo = (req, res) => {
    const sql = 'select * from userinfo'
    db.query(sql, (err, results) => {
        if (err) return res.fail(err)


        res.send({
            status: 200,
            message: '查询成功',
            data: results
        })

    })
}

exports.user = (req, res) => {
    const sql = 'select id,username,nickname,email,user_pic from users where id =?'
    db.query(sql, req.user.id, (err, results) => {
        if (err) return res.fail(err)
        //查询结果为空
        if (results.length !== 1) return res.fail('用户获取失败')

        res.send({
            status: 200,
            message: '查询成功',
            data: results[0]
        })

    })
}

exports.updateUser = (req, res) => {
    const sql = `update users set ? where id= ? `

    db.query(sql, [req.body, req.body.id], (err, results) => {
        if (err) return res.fail(err)
        //查询结果为空
        if (results.affectedRows !== 1) return res.fail('更新用户失败')

        res.send({
            status: 200,
            message: '修改成功',
        })

    })
}

exports.updatePwd = (req, res) => {

    const sql = `select * from users where id=?`
    // 执行 SQL 语句查询用户是否存在
    db.query(sql, req.user.id, (err, results) => {
        // 执行 SQL 语句失败
        if (err) return res.fail(err)
        // 检查指定 id 的用户是否存在
        if (results.length !== 1) return res.fail('用户不存在！')
        // 判断提交的旧密码是否正确
        const compareResult = bcrypt.compareSync(req.body.oldPwd, results[0].password)
        if (!compareResult) return res.fail('旧密码错误')

        const sql = `update users set password=? where id= ? `

        const newPwd = bcrypt.hashSync(req.body.newPwd,10)
        db.query(sql, [newPwd, req.user.id], (err, results) => {
            if (err) return res.fail(err)
            //查询结果为空
            if (results.affectedRows !== 1) return res.fail('更新用户失败')

            res.send({
                status: 200,
                message: '修改成功',
            })

        })
    })



}

exports.updateAvater = (req, res) => {
    const sql = `update users set user_pic=? where id= ? `
    db.query(sql,[req.body.avater,req.user.id]  ,(err, results) => {
        if (err) return res.fail(err)
        //查询结果为空
        if (results.affectedRows !== 1) return res.fail('更新头像失败')

        res.send({
            status: 200,
            message: '更新成功',
        })

    })
}